const API = require("../../../utils/api")
const app = getApp()
// pages/index/set-case/set-case.js
Page({

  /**
   * 页面的初始数据
   */
  data: {

  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    app.creat_records('loanform')
  },

  //事件 - 表单提交
  submit: function (e) {
    // wx.navigateTo({
    //   url: '../set-service/set-service',
    // })
    // return

    // console.log('form表单',e.detail.value)
    let form = e.detail.value
    let ruleStatus = this.formRules(form)
    if (ruleStatus) {
      wx.showToast({
        title: ruleStatus,
        icon: 'none'
      })
      return
    }
    form.userId = app.globalData.userInfo.id
    // console.log( app.globalData.userInfo.id )
    API.creat_credit_score(form).then( res => {
      wx.showLoading({
        title: '信用生成中',
      })
      if( res.code == 200 ){
        wx.showToast({
          title: '提交成功,稍后1-3天我们会联系您',
          icon:'none'
        })
        // setTimeout(() => {
        //   wx.navigateBack({
        //     delta: 1,
        //   })
        // }, 1500);
        //临时上线注释
        wx.navigateTo({
          url: '../set-service/set-service?data=' + JSON.stringify(res.data),
        })
        wx.hideLoading()
      }else{
        wx.hideLoading()
        wx.showToast({
          title: '生成失败，请稍后重试',
          icon:'none'
        })
      }
    })
  },

  /**
   * 表单验证
   */
  formRules: function (form) {
    console.log('表单输入', form)
    for( let key in form ){
      // console.log( isSqlInjection(form[key]).successful )
      if( !isSqlInjection(form[key]).successful ){
        return '非法字符，请检查'
      }
    }
    /**
     * 姓名 空
     */
    if (!form.name) {
      return '请填写姓名'
    }
    /**
     * 电话 开头、中间
     */
    // 电话 ---------------------------------------
    var phoneReg = /^1[3-578]\d{9}$/;
    if (!phoneReg.test(form.phone)) {
      return '请检查电话号码'
    }
    /**
     * 身份证
     * 1. 身份证号合法性验证  2.支持15位和18位身份证号 3.支持地址编码、出生日期、校验位验证
     */
    var idCardReg = /^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/;
    if( !idCardReg.test(form.identification) ){
      return '身份证信息错误'
    }
    /**
     * 单选选择
     */
    if( !form.company ){
      return '请填写公司名称'
    }
    /**
     * 单选选择
     */
    if( !form.overdue || !form.loans || !form.uncleared ){
      return '请选择'
    }
    /**
     * 是否查过征信
     */
    if( !form.creditSix || !form.creditTwelve || !form.creditTwenty ){
      return '请填写查询征信次数'
    }

    /**
     * 提供一个方法，判断 SQL WHERE 从句中参数是否包含 SQL 关键字，用于防止 SQL 注入攻击。
     * 
     * @param p_str
     *  一个字符串 要检查的值。
     */
    function isSqlInjection(p_str) {
      var regex = /(\sand\s)|(\sor\s)|(\slike\s)|(select\s)|(insert\s)|(delete\s)|(update\s[\s\S].*\sset)|(create\s)|(\stable)|(\sexec)|(declare)|(\struncate)|(\smaster)|(\sbackup)|(\smid)|(\scount)|(\sadd\s)|(\salter\s)|(\sdrop\s)|(\sfrom\s)|(\struncate\s)|(\sunion\s)|(\sjoin\s)|(')/;
      var result = [];
      var successful = !regex.test(p_str);
      var matches = p_str.match(regex);
      var hint = p_str;
      if (matches && matches[0]) {
        hint = matches[0];
      }
  
      return {
        successful : successful,
        hint : hint
      };
    }
    // console.log( '非法输入',isSqlInjection(`and,delete,or,exec,insert,select,union,update,count,*,',join,>,<`) )

    return false  //通过

  },


  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    
  },
})